using Microsoft.Practices.CompositeWeb.Interfaces;

namespace WCSFContrib.Extensions.CompositeWeb.Interfaces
{
    /// <summary>
    /// Defines the contract for the values that should be retrieved from the QueryString.
    /// </summary>
    public interface IQueryStringValue
    {
        /// <summary>
        /// Gets the HttpContext.
        /// </summary>
        IHttpContext HttpContext { get; set; }

        /// <summary>
        /// Gets the actual value from the QueryString.
        /// </summary>
        object Value { get; }

        /// <summary>
        /// Gets or sets the key of the value in the QueryString.
        /// </summary>
        string KeyName { get; set; }

        /// <summary>
        /// Sets the default value.
        /// </summary>
        void SetDefault();
    }
}